]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
windowManager: Don't move sticky windows when inserting workspace
authorFlorian Müllner <fmuellner@gnome.org>
Mon, 8 Apr 2019 04:40:13 +0000 (06:40 +0200)
committerFlorian Müllner <florian.muellner@gmail.com>
Thu, 11 Apr 2019 19:00:52 +0000 (19:00 +0000)
Inserting a workspace is implemented by appending a new workspace, then
shifting all windows after the "new" workspace up. This has an unintended
side effect on sticky windows, as changing its workspace will unstick it.

Fix this by excluding sticky windows - there's little point in moving them
anyway, given that they should be on all workspaces (including the original
workspace and the target one).

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1151

js/ui/windowManager.js

index e8bd0a69023f026df07be57961a23da0c30fea60..09eeac105ecf61523996d18b5b1a579b0f476a08 100644 (file)
@@ -1218,6 +1218,10 @@ var WindowManager = class {
             // Same for OR windows
             if (window.is_override_redirect())
                 return;
+            // Sticky windows don't need moving, in fact moving would
+            // unstick them
+            if (window.on_all_workspaces)
+                return;
             // Windows on workspaces below pos don't need moving
             let index = window.get_workspace().index();
             if (index < pos)